﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tanmia.Warehouse.Core;
using Tanmia.Basis.ViewModel;
using Tanmia.Basis.ViewInterface;
using Tanmia.Basis.Data;
using Microsoft.Practices.Prism.Regions;
using Tanmia.Warehouse.Domain;
using System.Globalization;
using Tanmia.Warehouse.Presentation.Properties;
using System.Windows.Data;

namespace Tanmia.Warehouse.Presentation.Scenarios.UnitScenario
{
    public class UnitViewModel : BaseEditAndBrowseViewModel<Unit>
    {
        public UnitViewModel(IShellView shellView, IRegionManager regionManager, IMessageService messageService, ISessionManager sessionManager, UnitDomain unitDomain)
            : base(shellView, regionManager, messageService, sessionManager, unitDomain)
        {
            ViewInfo = new ViewInfo("تحرير وحدة قياس", "واحدات القياس تستخدم من أجل تحديد طريقة حركة كمية المواد داخل المستودع, فيما إذا كانت قطعة أو صندوق أو طرد أو ...");
            BrowserInfo = new ViewInfo("إستعراض واحدات القياس", "");
            EntityName = "Unit";
        }

        protected override void OnDelete()
        {
            MessageServiceResultEnum result = MessageService.RequestUserConfirmation(
                string.Format(CultureInfo.CurrentCulture, Resources.DeleteConfirmation,
                EntityName, CurrentEntity.UnitID));

            if (result == MessageServiceResultEnum.Yes)
            {
                bool deletionResult = DeleteCore();
                UpdateStatus(deletionResult, Resources.DeleteSucceed, Resources.DeleteUnsucceed);
            }
        }

        protected override void PerformActualRefresh()
        {
            Entities = CollectionViewSource.GetDefaultView(DomainObject.Gets(new UnitSpecification()));
            RaisePropertyChanged(() => Entities);
        }
    }
}
